//------------------------------------------------------------------------------
//  key.cc
//------------------------------------------------------------------------------
#include "Pre.h"
#include "Key.h"
#include "Core/Assertion.h"

namespace Oryol {
    
const char* Key::keyTable[Key::NumKeys] = {
    "InvalidKey",
    "Space",
    "Apostrophe",
    "Comma",
    "Minus",
    "Period",
    "Slash",
    "N0",
    "N1",
    "N2",
    "N3",
    "N4",
    "N5",
    "N6",
    "N7",
    "N8",
    "N9",
    "Semicolon",
    "Equal",
    "A",
    "B",
    "C",
    "D",
    "E",
    "F",
    "G",
    "H",
    "I",
    "J",
    "K",
    "L",
    "M",
    "N",
    "O",
    "P",
    "Q",
    "R",
    "S",
    "T",
    "U",
    "V",
    "W",
    "X",
    "Y",
    "Z",
    "LeftBracket",
    "BackSlash",
    "RightBracket",
    "GraveAccent",
    "World1",
    "World2",
    "Escape",
    "Enter",
    "Tab",
    "BackSpace",
    "Insert",
    "Delete",
    "Right",
    "Left",
    "Down",
    "Up",
    "PageUp",
    "PageDown",
    "Home",
    "End",
    "CapsLock",
    "ScrollLock",
    "NumLock",
    "PrintScreen",
    "Pause",
    "F1",
    "F2",
    "F3",
    "F4",
    "F5",
    "F6",
    "F7",
    "F8",
    "F9",
    "F10",
    "F11",
    "F12",
    "F13",
    "F14",
    "F15",
    "F16",
    "F17",
    "F18",
    "F19",
    "F20",
    "F21",
    "F22",
    "F23",
    "F24",
    "F25",
    "Num0",
    "Num1",
    "Num2",
    "Num3",
    "Num4",
    "Num5",
    "Num6",
    "Num7",
    "Num8",
    "Num9",
    "NumDecimal",
    "NumDivide",
    "NumMultiply",
    "NumSubtract",
    "NumAdd",
    "NumEnter",
    "NumEqual",
    "LeftShift",
    "LeftControl",
    "LeftAlt",
    "LeftSuper",
    "RightShift",
    "RightControl",
    "RightAlt",
    "RightSuper",
    "Menu"
};

//------------------------------------------------------------------------------
const char*
Key::ToString(Key::Code k) {
    o_assert_range(k, Key::NumKeys);
    return keyTable[k];
}

} // namespace Oryol
